문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 프로그래밍 언어 (문단 편집) == 회화 언어와의 관계 == >마법의 본질은 이해할 수 없는 자연과의 교섭이고 요청이야. >(중략) >그럼에도 선대들이 발견해온 자연이 '좋아하는' 구절들. >우주가 들으면 마음이 너그러워지는 이상한 말들. 그것이 영창일세. > >"불꽃처럼, 비구름의 안과 같이, 왕관이 땅에 떨어지는 소리와 함께!" >---- >반-바지 단편 [[https://twitter.com/bahnbazi/status/1019598625268043776|백엔드 개발자인 내가 이세계로 떨어져 직업교육소를 찾은 건]]에서 >[[마법]]의 주문과 컴퓨터 프로그래밍을 동일한 시각으로 본 단편이다.[* 이 시각이 극명하게 드러난 예가 바로 [[https://deviq.com/principles/tell-dont-ask|Tell, Don't Ask]](TDA; 묻지 않고 시키기) 원칙이며, 그 구현이 바로 [[람다식]]이다.] 프로그래밍 언어는 소프트웨어 개발이라는 한정된 목적으로 쓰이고, 일생상활에서는 쓰이지 않는다. 또한 회화 언어보다는 문법이 엄격하고, 2인칭이 존재하지 않는 등 얼핏 보면 일상적으로 쓰는 자연어와 괴리감을 느낄 수 있다. 이는 데이터의 기술을 주요 목적으로 하는 [[마크업 언어]]에서도 느낄 수 있는 분위기다. 하지만 프로그래밍 언어와 자연어는 근본적으로 큰 차이가 없다. 비전공자 입장에서는 무슨 뜬금없는 소리인가 싶기도 하지만, 자연어와 프로그래밍 언어의 관계는 상당히 밀접하다. 애초에 프로그래밍 언어 역시 기계와의 '회화'를 위해 사람이 만들어 쓰는 말이며, 다만 프로그래밍 언어는 기계도 청자(聽者)라는 차이만 있을 뿐이다.[* 게다가 이 차이점마저 [[ChatGPT]] 등 대화형 인공지능의 등장으로 더욱 모호해지고 있다. 프로그래밍 언어와 자연어 사이의 경계가 사실상 없어지는 셈이다.] 그 예로 단어를 소리 단위로 쪼개는 [[음운론]]은 프로그래밍 언어로 치면 토큰 구성 이론과 같으며, 문장을 단어 단위로 쪼개는 [[통사론]]은 프로그래밍 코드 형태로 쓰인 텍스트를 토큰 단위로 쪼개는 [[컴파일러]] 이론과 완전히 동일하다. [[기계 번역]]도 사실 프로그래밍 쪽에서 컴파일러, [[인터프리터]] 등의 형태로 이미 적용되어 있던 것이 자연어로 옮겨간 것뿐이다. [[알 토네리코 시리즈]]의 [[휴므노스어]]나 [[Ciel nosurge]]의 REON-4213 처럼 프로그래밍 언어와 자연어를 접목하는 시도도 있었으며, [[로지반]] 역시 비슷한 노력의 산물이다. 말만 익힌다고 끝나는 게 아니라는 것도 회화 언어와 프로그래밍 언어의 공통점이다. 어떤 회화 언어에 충분히 숙달됐더라도 현지 문화, 법규 등을 익혀야 그 언어를 사용하는 현지에서 원활하게 생활할 수 있듯, 프로그래밍 언어 역시 그 언어에 적용할 수 있는 방법론이나 개발 분야에서의 프로토콜 등을 지속적으로 이해해야 실무에서 살아남을 수 있다. 많은 [[코더]]들이 실무에서 좌절하는 이유가 여기에 있으며, 그렇기에 [[번역가]]도 [[프로그래머]]도 모두 평생학습을 필요로 하는 직업이다. 실제로 초창기만 해도 [[존 폰 노이만]]처럼 [[기계어]]를 외국어 구사하듯 구사하는 사람이 많았고, 지금도 [[언어학과]]에서 프로그래밍 언어를 가르치기도 한다. 요즘이야 컴파일러 성능이 좋아져서 그런 걸 굳이 인지할 필요가 줄었다고는 하지만, 반대급부로 기계를 이해하지 못해 [[발적화]]를 한다거나 기본적인 [[디버그]]조차 하지 않아 문제가 발생한 사례들을 보자면, 딱히 필요성이 줄었다 보기도 어렵다. 또한 커뮤니케이션 능력 부족이 치명적인 원인이 되어 형편없는 결과물이 나오는 사례도 주변에 수두룩하다. 따라서 프로그램의 올바른 개발을 위해서는 회화 언어 구사 능력도 좋은 개발자가 있어야 한다. 코더가 양산되는 이유를 이런 관점에서 살펴보면 [[양판소/문제점|양판소가 비판]]받는 이유를 이해하기 쉽다. 다시 말해 프로그래밍은 [[소설작법]]과 유사한 측면이 있다. 버그가 발생했다는 것은 [[오역]]했다는 말과 같다고 볼 수 있으며, [[발적화]]는 회화에서 [[아무 말 대잔치]]를 한 것과 동일하다 볼 수 있다. 특수 케이스를 생각하지 않은 버그는 [[뉘앙스]]를 감안하지 않은 오역, 의존 라이브러리의 오류는 [[사전]]의 오류 또는 문화 차이에서 발생한 오류로 볼 수 있다. [[MOTHER 2]]의 [[포사이드#s-3|문사이드]]에서 나온 '예'와 '아니오'가 바뀐, 그래서 [[검은 닌텐도]]의 일환으로 평가받는 언어활용은 프로그래밍으로 치면 하드웨어 결함으로 발생한 버그와 유사하다. 더욱 섬뜩한 예로, 잘못된 언어 활용으로 발생하는 갈등은 [[악성코드]]와 유사하다. 그래서 몇몇 교육자들은 소스를 던져주고 '''한국어로 번역하여 제출하시오''' 라고 하는 교육자도 있다. [include(틀:문서 가져옴,this=문단,title=코더,version=153,title2=프로그래밍 언어론,version2=14)]저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기